在 Day 19 我們介紹了 mysqli 的用法,在 Day 20 我們要來介紹 PDO 這個 PHP 的語法如何使用。
一開始還是要了解怎麼跟資料庫進行連線,寫法如下
$connection = new PDO( "mysql:host=資料庫IP;dbname=資料庫名稱;", 登入ID, 登入密碼 );
我們使用 Day 19 的資料庫例子
資料庫IP = '127.0.0.1'
登入ID = 'root'
登入密碼 = ''
資料庫名稱='foo'
寫起來會是這樣
$connection = new PDO( "mysql:host=127.0.0.1;dbname=Foo;", 'root','');
操作的部分我們用 Day 19 的例子來改寫,會像下面這樣
$newUserID = 'User87';
$newUserPassword='123456';
$sql = "INSERT INTO `account` (UserID,password) VALUES (?, PASSWORD(?))";
$statement = $connection->prepare( $sql );
$statement->bindValue( 1, $newUserID, PDO::PARAM_STR );
$statement->bindValue( 2, $newUserPassword, PDO::PARAM_STR );
$statement->execute();
解釋一下,前面的部分都差不多。後面的部分稍微不同的是, PDO 使用的是 bindValue
來填入變數。後面的 PDO::PARAM_STR
是要告訴程式,前面的變數要使用字串的型態來填入,為的也是防止 Injection。最後再execute()
就可以了。
bindValue
這樣的寫法會大大加長程式的長度,所以可以把 bindValue
那兩行刪掉,改寫一下 execute()
變成下面這樣
$statement->execute(array($newUserID,$newUserPassword));
就變短一些啦